#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time     :2020/12/18
# @Author   :Changshu
# @File     :Exercise_594.py
# 594. 最长和谐子序列
# 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。
# 给定一个整数数组，你需要在所有可能的子序列中找到最长的和谐子序列的长度。

class Solution:
	'''法一：用hash存储每个数字出现的数量
	def findLHS(self, nums: list) -> int:
		d={}
		m=0
		for n in nums:
			if n in d:
				d[n]+=1
			else:
				d[n]=1
		for k in d.keys():
			if k-1 in d and d[k-1]+d[k]>m:
				m=d[k-1]+d[k]
			if k+1 in d and d[k+1]+d[k]>m:
				m=d[k+1]+d[k]
		return m
	'''





if __name__ == '__main__':
	solution=Solution()
	nums=[1,3,2,2,5,2,3,7]
	print(solution.findLHS(nums))